package org.huangrui.spark.scala.sql

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.sql.SparkSession

/**
 * @Author hr
 * @Create 2024-10-20 9:47 
 */
object SparkSQL01_Env_1 {
  def main(args: Array[String]): Unit = {
    // TODO 构建环境对象
    //      Spark在结构化数据的处理场景中对核心功能，环境进行了封装
    //      构建SparkSQL的环境对象时，一般采用构建器模式
    //      构建器模式： 构建对象时，先构建一个空的构建器对象，然后调用它的方法完成对象的构建
    val conf = new SparkConf().setAppName("SparkSQL01_Env_1").setMaster("local");
    val sc = new SparkContext(conf)
    val session = SparkSession.builder().config(conf).getOrCreate()

    // TODO 环境之间的转换
    //      Core : SparkContext -> SQL : SparkSession
    SparkSession.builder().config(sc.getConf).getOrCreate()
    // TODO SQL  : SparkSession -> Core : SparkContext
    val sparkContext = session.sparkContext

    session.stop()
  }
}
